<?php
/**
 * Description of NewsController
 * @author : Nguyễn Duy Cường
 * @since Oct 19, 2012
 */
class UserController extends AppController {

    public $name = 'User';
    public $uses = array('User', 'Setting');
    public $components=array('Upload','Session','Common');


    public function beforeFilter() {

        parent::beforeFilter();
    }

    public function checklogin(){
        if(!isset($_SESSION['user_id'])){
            $this->Session->write('back_after_login',DOMAIN.$this->request->url);
            $this->redirect(DOMAIN.'user/login');
        }
        $this->User = ClassRegistry::init('User');
        $login = $this->User->findById($_SESSION['user_id']);
        if(!$login){
            $this->Session->write('back_after_login',DOMAIN.$this->request->url);
            $this->redirect(DOMAIN.'user/login');
        }
        return true;
    }


    //Controller thay đổi mật khẩu
    public function pass($id=null){

        $this->checklogin();

        $login = $this->User->findById($id);

        $this->set('user',$login['User']);
        $this->set('backlink','Đổi mật khẩu');

        if (!empty($this->request->data)) {

            $this->User->set($this->request->data);
            if ($this->User->validates()) {
                $this->User->save($this->request->data);
                $this->Session->setFlash('Đã đổi mật khẩu!', 'default', array('class' => 'alert alert-success'));
                $this->redirect(DOMAIN.'user/profile/'.$_SESSION['user_id']);
            }
            else {
                $this->Session->setFlash('Vui lòng kiểm tra lại thông tin!', 'default', array('class' => 'alert alert-block'));
            }
        }
    }

    public function avatar($id=null){

        $this->checklogin();

        $login = $this->User->findById($id);

        $this->set('user',$login['User']);

        if($this->request->is('post')){
            $this->request->data['User']['id'] = $_SESSION['user_id'];


            if(isset($this->request->data['User']['images'])){
                $img = $this->User->find(
                    'first',
                    array(
                        'conditions'=>array(
                            'User.id'    =>  $this->request->data['User']['id']
                        )
                    )
                );

                if (!empty($this->request->data['User']['images']['name'])) {
                    $this->Upload->w = 200;
                    $this->Upload->h = 200;
                    $this->Upload->delete = $img['User']['images'];
                    $this->Upload->name = 'user-'.$this->user_login['username'];
                    $this->Upload->new = $this->request->data['User']['images'];
                    $this->request->data['User']['images'] = $this->Upload->Process();
                }

                else $this->request->data['User']['images'] = $img['User']['images'];
            }

            $this->User->save($this->request->data);

            $this->Session->setFlash('Đã lưu thay đổi!', 'default', array('class' => 'alert alert-success'));

            $this->redirect(DOMAIN.'user/profile/'.$_SESSION['user_id']);
        }

        $this->set('backlink',lang('backlink_change_avatar'));
    }

    public function profile($id=null){
        $login = $this->User->findById($id);

        if(!$login) {
            $this->Session->setFlash('Liên kết không tồn tại!', 'default', array('class' => 'alert alert-error'));
            $this->redirect('/');
        }
        //pr($login); die;
        $this->set('user',$login['User']);
        $this->set('backlink','Trang cá nhân '.$login['User']['username']);
    }

    public function info($id=null){
        //die('dsa');
        $this->checklogin();

        $login = $this->User->findById($id);

        $this->set('user',$login['User']);
        $this->set('backlink','Chỉnh sửa trang cá nhân');

        if($this->request->is('post')){
            $this->request->data['User']['id'] = $_SESSION['user_id'];

            if($this->User->findByEmail($this->request->data['User']['email'])){
                $this->Session->setFlash('Email đã tồn tại!', 'default', array('class' => 'alert alert-block'));
                $this->render($this->referer());
                exit;

            }

            $this->User->save($this->request->data);

            $this->Session->setFlash('Đã lưu thay đổi!', 'default', array('class' => 'alert alert-success'));

            $this->redirect(DOMAIN.'user/profile/'.$_SESSION['user_id']);
        }
    }

    public function danhbathanhvien(){
        //Danh sach luat su
        $list_luatsu = $this->User->find('all', array(
            'fields' => array(
                'User.id','User.fullname','User.chuyenmuctuvan','User.email','User.phone','User.telephone','User.vanphong','User.address','User.images', 'User.wait'
            ),
            'conditions' => array(
                'User.lawyer' => 0,
                'User.wait' => 0,
            ),
            'order' => 'User.total_post DESC'
        ));
        $this->set('list_luatsu', $list_luatsu);

        //4 luat su tieu bieu
        $list_luatsutieubieu = $this->User->find('all', array(
            'fields' => array(
                'User.id','User.fullname','User.images'
            ),
            'conditions' => array(
                'User.lawyer' => 0
            ),
            'limit' => 4,
            'order' => 'User.total_post DESC'
        ));
        $this->set('list_luatsutieubieu', $list_luatsutieubieu);

        // set gia tri hien thi menu left
        $this->set('left', 'danhba');
        // set gia tri hien thi banner
        $this->set('user_banner', 'user');
        //set gia tri hien thi content, right
        $this->set('content_right_danhba', 'true');

        $this->set('layer_type', '0');
        $this->set('title_for_layout','Danh bạ thành viên');
        $this->set('controller_thanhvien', 'Thành viên tiêu biểu');
        $this->set('controller_timkiemluat', 'Tim kiếm thành viên');
        $this->set('controller_tinhthanh', 'Tìm thành viên tỉnh thành');
        $this->set('controller_tieubieu', 'Thành viên tích cực');
    }

    public function searchaccount(){
        if($this->request->is('post')){
            //Danh sach luat su
            if(isset($_POST['tenluatsu'])){
                $tenluatsu = $_POST['tenluatsu'];
                $this->Session->write('tenluatsu', $tenluatsu);
            }else{
                if($this->Session->check('tenluatsu')){
                    $tenluatsu = $this->Session->read('tenluatsu');
                }
            }

            if(isset($_POST['tinhthanh'])){
                $tinhthanh = $_POST['tinhthanh'];
                $this->Session->write('tinhthanh', $tinhthanh);
            }else{
                if($this->Session->check('tinhthanh')){
                    $tinhthanh = $this->Session->read('tinhthanh');
                }
            }

            $flag = 0;
            $conn = array();

            if($tenluatsu != null) { $conn['User.fullname LIKE'] = '%' . $tenluatsu . '%'; $flag = 1; }
            if($tinhthanh != null) { $conn['User.city_id'] = $tinhthanh; $flag = 1; }
            $conn['User.lawyer']  = $_POST['lawyer'];

            $list_luatsu = $this->User->find('all', array(
                'fields' => array(
                    'User.id','User.fullname','User.chuyenmuctuvan','User.email','User.phone','User.telephone','User.vanphong','User.address','User.images'
                ),
                'conditions' => $conn,
                'order' => 'User.total_post DESC'
            ));
            $this->set('list_luatsu', $list_luatsu);

            //4 luat su tieu bieu
            $list_luatsutieubieu = $this->User->find('all', array(
                'fields' => array(
                    'User.id','User.fullname','User.images'
                ),
                'conditions' => array(
                    'User.lawyer' => $_POST['lawyer']
                ),
                'limit' => 4,
                'order' => 'User.total_post DESC'
            ));
            $this->set('list_luatsutieubieu', $list_luatsutieubieu);

            // set gia tri hien thi menu left
            $this->set('left', 'danhba');
            // set gia tri hien thi banner
            $this->set('user_banner', 'user');
            //set gia tri hien thi content, right
            $this->set('content_right_danhba', 'true');

            $this->set('layer_type', $_POST['lawyer']);

            //set tieu de
            if($_POST['lawyer'] == 1){
                $this->set('title_for_layout','Tìm kiếm luật sư');
                $this->set('controller_thanhvien', 'Luật sư tiêu biểu');
                $this->set('controller_timkiemluat', 'Tìm kiếm luật sư');
                $this->set('controller_tinhthanh', 'Tìm đoàn luật sư tỉnh / thành');
                $this->set('controller_tieubieu', 'Luật sư tích cực');
            }else{
                $this->set('title_for_layout','Tìm kiếm thành viên');
                $this->set('controller_thanhvien', 'Thành viên tiêu biểu');
                $this->set('controller_timkiemluat', 'Tim kiếm thành viên');
                $this->set('controller_tinhthanh', 'Tìm thành viên tỉnh thành');
                $this->set('controller_tieubieu', 'Thành viên tích cực');
            }
        }else{
            $this->redirect($this->referer());
        }

    }

    public function register(){
        if($this->request->is('post')) {

            if(isset($_POST['chkAgree'])&&$_POST['chkAgree']=='on'){
                if($this->request->data['captcha']!=$_SESSION['captcha']){
                    $this->Session->setFlash('Mã xác nhận không đúng!', 'default', array('class' => 'alert alert-block'));
                    $this->render($this->referer());
                    exit;
                }else if($this->User->findByEmail($this->request->data['User']['email'])){
                    $this->Session->setFlash('Email đã tồn tại!', 'default', array('class' => 'alert alert-block'));
                    $this->render($this->referer());
                    exit;

                }else{//echo $this->request->data['User']['password'].'-'.md5($this->request->data['User']['password']);
                    //$this->request->data['User']['password'] = md5($this->request->data['User']['password']);

                    //pr($this->request->data['User']); die;


                    if (!empty($this->request->data['User']['images']['name'])) {
                        $this->Upload->w = 200;
                        $this->Upload->h = 200;
                        $this->Upload->delete = $img['User']['images'];
                        $this->Upload->name = 'user-'.$this->user_login['username'];
                        $this->Upload->new = $this->request->data['User']['images'];
                        $this->request->data['User']['images'] = $this->Upload->Process();
                    }

                    $this->User->save($this->request->data['User']);
                    $id_user = $this->User->getLastInsertID();
                    $this->Session->write('user_id', $id_user);
                    $this->redirect(DOMAIN.'user/profile/'.$id_user);
                    exit;
                }
            }
        }

        // set gia tri hien thi menu left
        $this->set('left', 'home');
        $this->set('backlink',lang('dang_ky'));
    }

    public function facebook(){
        $config = array();
        $config['appId'] = '1437095703202490';
        $config['secret'] = '1c6322752d4871be708c7244f21ff1dd';
        $config['fileUpload'] = false; // optional

        $page_id = "533533906760832";

        $this->fb = new Facebook($config);

        $this->fbid = $this->fb->getUser();



        if(!$this->fbid){
            $this->redirect($this->fb->getLoginUrl(array('scope' => 'email')));
        }else {
            $fb = $this->fb->api("/me");

            $this->Upload->name = $fb['name'];
            //$this->Upload->url = 'http://graph.facebook.com/'.$fb['username'].'/picture?type=large';

            if($this->User->findByEmail($fb['email'])){
                $this->Session->write('user_id', $username['User']['id']);
            }
            else{

                $data = array(
                    'User' => array(
                        'fbid' => $fb['id'],
                        'name' => $fb['name'],
                        'sex'  => $fb['gender'],
                        'email'  => $fb['email'],
                        'images' => $this->Upload->Process()
                    )
                );

                $this->User->save($data);

                $id_user = $this->User->getLastInsertID();
                $this->Session->write('user_id', $id_user);
            }

            $url = $this->Session->read('back_after_login');
            $this->Session->delete('back_after_login');
            if($url) $this->redirect($url);
            $this->redirect($this->referer());
        }
    }


          //Xử lý đăng nhập
      public function login(){
            //if(isset($_SESSION['user_id'])) $this->redirect(DOMAIN);
            if($this->request->is('post')){
                if(isset($_POST['txtName'])&&isset($_POST['txtPass'])){
                    $username = $this->User->findByEmail($_POST['txtName']);

                    //pr($username);die;

                    if(!$username){
                        $this->Session->setFlash('Tài khoản không tồn tại!', 'default', array('class' => 'alert alert-error'));
                    }
                    else{
                        if($username['User']['password'] == md5($_POST['txtPass'])){
                            $this->Session->write('user_id', $username['User']['id']);

                            $url = $this->Session->read('back_after_login');
                            $this->Session->delete('back_after_login');
                            if($url) $this->redirect($url);
                            $this->redirect($this->referer());
                        } else{
                            $this->Session->setFlash('Đăng nhập thất bại!', 'default', array('class' => 'alert alert-error'));
                        }
                    }
                }

                else{
                    $this->Session->setFlash('Vui lòng không hack!', 'default', array('class' => 'alert alert-error'));
                }
            }

            $this->set('backlink', lang('dang_nhap'));
            $this->set('title_for_layout', lang('dang_nhap'));
            $this->set('left', 'home');
        }

        public function logout(){
            $this->User->id=$_SESSION['user_id'];
            $this->User->saveField('activity', 0);

            $this->Session->delete('user_id');
            $this->Session->setFlash('Đã thoát!', 'default', array('class' => 'alert alert-success'));
            $this->redirect(DOMAIN);
        }

        public function username_check(){
            if(isset($_POST['id']))
            if($_POST['id'])
            $username = null;
            $username = $this->User->findByUsername($_POST['id']);
            if($username){
                echo '<span class="notice-err">Tên đăng nhập đã tồn tại !</span>';
            }else{
                echo '<span class="notice-susces userdisplay">Bạn có thể sử dụng tên này !</span>';
            }
            die;
        }

        public function email_check(){
            if(isset($_POST['id']))
            if($_POST['id'])
            $email = null;
            $email = $this->User->findByEmail($_POST['id']);
            if($email){
                echo '<span class="notice-err">Email đã tồn tại !</span>';
            }else{
                echo '<span class="notice-susces userdisplay">Bạn có thể sử dụng email này !</span>';
            }

            die;
        }

        public function catcha_check(){
            if(isset($_POST['id']))
            if($_POST['id'])
            if($_POST['id'] != $_SESSION['captcha']){
                echo '<span class="notice-err">Captcha bạn nhập không đúng !</span>';
            }else{echo '';}

            die;
        }
}
